package server.shops;

import client.MapleCharacter;
import client.MapleClient;
import tools.Pair;

import java.util.List;

public interface IMaplePlayerShop {
    public static byte HIRED_FISHING = -1;
    public static byte HIRED_MERCHANT = 1;
    public static byte PLAYER_SHOP = 2;
    public static byte OMOK = 3;
    public static byte MATCH_CARD = 4;

    String getOwnerName();

    String getDescription();

    List<Pair<Byte, MapleCharacter>> getVisitors();

    List<MaplePlayerShopItem> getItems();

    List<Pair<String, Byte>> getMessages();

    boolean isOpen();

    boolean removeItem(int p0);

    boolean isOwner(MapleCharacter p0);

    byte getShopType();

    byte getVisitorSlot(MapleCharacter p0);

    byte getFreeSlot();

    int getItemId();

    int getMeso();

    int getOwnerId();

    int getOwnerAccId();

    void setOpen(boolean p0);

    void setMeso(int p0);

    void addItem(MaplePlayerShopItem p0);

    void removeFromSlot(int p0);

    void broadcastToVisitors(byte[] p0);

    void addVisitor(MapleCharacter p0);

    void removeVisitor(MapleCharacter p0);

    void removeAllVisitors(int p0, int p1);

    void buy(MapleClient p0, int p1, short p2);

    void closeShop(boolean p0, boolean p1);

    String getPassword();

    int getMaxSize();

    int getSize();

    int getGameType();

    void update();

    void setAvailable(boolean p0);

    boolean isAvailable();

    List<AbstractPlayerStore.BoughtItem> getBoughtItems();

    boolean getCanShop();

    void setCanShop(boolean p0);
}
